/* 
 * File:   DinamicaMolecular.cpp
 * Author: jonk
 *
 * Created on 15 de enero de 2012, 20:19
 */

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<time.h>
#include<iomanip>
#include <sstream>

#define pi 3.1415926535898
#define np 200
template<typename T>inline int nint(T x) {
    return (int(floor(x + 0.5)));
}
//#define CONFINED
//#define COUETTE
#define MAGNETIC
using namespace std;

#include "objetos.h"
#include "mthParticulas.h"
#include "ficheros.h"
#include "inicial.h"
#include "inter.h"
#include "integracion.h"

int main(int argc, char** argv) 
{
    void test();
 test();
//    parametros param;
//    particula *part = new particula[np];
//    double epoten;
//    param.u0=0.1;
//    param.omega=10.0;
//    param.phi=0.2;
//    param.rcut=3.0;
//    param.t=0.0;
//    param.nacc=0.0;
//    param.dt=0.0005;
//    param.npart=np;
//    param.epsilon=0.01;
//    param.gamma0=0.02;
//    param.ratio=1.0;
//    
//    clock_t t_ini, t_fin;
//    double secs;
//    t_ini = clock();
//
//    ofstream MiArchivo ("system_bk.dat",ios::out); 
//    MiArchivo.is_open();
//    MiArchivo.close();
//    
//    /*Colocamos las particulas*/
//    SetRandomPart2(part, &param);
//    
//    for(int i=0;i<1000;i++)
//    {
//        param.nacc=i;
//        param.t=i*param.dt;
//        epoten = integracion(part,  param);
//        if(i%100==0)
//        {
//                printConfigBackup(part, param);
//        }
//        
//    }
//    t_fin = clock();
//
//  secs = (double)(t_fin - t_ini) / CLOCKS_PER_SEC;
//  printf("%.16g milisegundos\n", secs * 1000.0);
//
//    
//    
//    delete []part;
    return 0;
}

void test()
{
    clock_t t_ini, t_fin;
    double secs;
    t_ini = clock();
    
    double dx,dy,dz;
    parametros param;
    particula part[2];
    param.lbox[0]=10.0;
    param.lbox[1]=10.0;
    param.lbox[2]=10.0;
    
    part[0].pos[0]=0.5;
    part[0].pos[1]=0.5;
    part[0].pos[2]=0.5;
    
    part[1].pos[0]=9.5;
    part[1].pos[1]=9.5;
    part[1].pos[2]=9.5;
    
    for(int i=0;i<10000000;i++)
    {
        distancia(part[0],part[1], &dx, &dy, &dz,  param);
    }
    
     t_fin = clock();

  secs = (double)(t_fin - t_ini) / CLOCKS_PER_SEC;
  printf("%.16g milisegundos\n", secs * 1000.0);
}
